<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
  -->

<body>
<p>
    This package contains the Clock interface and implementations for
    generating UUID timestamps. UUID timestamps are measured in 100-nano
    second intervals since the Gregorian changeover epoch (00:00:00.00,
    15 October 1582.) Due to several factors relating to time precision and
    time resolution on Windows <sup>tm</sup> and in Java <sup>tm</sup> in
    general; the Clock interface is introduced to allow different or custom
    strategies in timestamp generation. The IETF (Internet Engineering Task Force)
    specification details some of these approaches. For more information see
    the <a href="ftp://ftp.rfc-editor.org/in-notes/rfc4122.txt">RFC 4122:
    A Universally Unique IDentifier (UUID) URN Namespace</a>.
</p>
<p>
    Two provided implementation are:
<ul>
    <li><code>SystemClockImpl</code> - uses System.currentTimeMillis() and an
        artificial counter to allow up to 10,000 ticks per millisecond interval.
    </li>
    <li><code>ThreadClockImpl</code> - time resolution on certain operating
        systems may not be 1-millisecond intervals. Windows <sup>tm</sup> according
        to some reports to have time resolution in the 1-ms to 54-ms range. Using a
        thread to provide a clock that increments it's counter at 10-ms intervals is
        one means of compensating for this. <em>(Due to bug parade issue:
            4500388 10-ms and not 1-ms intervals are used in this implementation.)</em>
    </li>
</ul>
</p>
</body>